package pe.edu.upc.dew.grupo04.dao;

import java.util.List;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import pe.edu.upc.dew.grupo04.model.Pelicula;


public class PeliculaDaoJdbc extends SimpleJdbcDaoSupport implements PeliculaDao{

	public void crearPelicula(Pelicula pelicula) {
		getSimpleJdbcTemplate().update(
				"insert into pelicula(codPelicula,titulo,cartelera,estreno,duracion,genero,clasificacion)"
						+ " values(?,?,?,?,?,?,?)", pelicula.getCodPelicula(),
				pelicula.getTitulo(),pelicula.isCartelera(),pelicula.isEstreno(),pelicula.getDuracion(), pelicula.getGenero(),
				pelicula.getClasificacion());
	}

	public Pelicula getPeliculaPorCodigo(int codPelicula) {
		return getSimpleJdbcTemplate().queryForObject(
				"select * from pelicula where codPelicula=?",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class), codPelicula);
	}

	public List<Pelicula> getPeliculas() {
		return getSimpleJdbcTemplate().query("select * from pelicula",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class));
	}

	public void updatePelicula(Pelicula pelicula) {
		getSimpleJdbcTemplate()
				.update("update pelicula set titulo=?,cartelera=?,estreno=?,duracion=?,genero=?,clasificacion=? where "
						+ "codPelicula=?", pelicula.getTitulo(),pelicula.isCartelera(),pelicula.isEstreno(),
						pelicula.getDuracion(), pelicula.getGenero(),
						pelicula.getClasificacion(),pelicula.getCodPelicula());
	}
		
	public List<Pelicula> getPeliculasEnCartelera(){
		return getSimpleJdbcTemplate().query("select * from pelicula where cartelera=true",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class));		
	}
	
	public List<Pelicula> getPeliculasEnEstreno(){
		return getSimpleJdbcTemplate().query("select * from pelicula where estreno=true",
				new BeanPropertyRowMapper<Pelicula>(Pelicula.class));		
	}

	public void eliminarPelicula(int codPelicula) {
		getSimpleJdbcTemplate().update("delete from pelicula where codPelicula=?",
				codPelicula);
	}

}